write_trkpt_cb(const waypoint* wpt)
{
char buff[128];
- struct tm tm;
if ((curr_index != target_index) || (wpt == NULL)) {
return;
buff[0] = '\0';
if (wpt->creation_time != 0) {
- tm = *gmtime(&wpt->creation_time);
+ const time_t tt = wpt->creation_time;
+ struct tm tm = *gmtime(&tt);
+
strftime(buff, sizeof(buff), "%d-%b-%y %H:%M:%S", &tm);
strupper(buff);
} else {
struct tm tm;
double time;
int date;
-
- tm = *gmtime(&wpt->creation_time);
+ const time_t ct = wpt->creation_time;
+ tm = *gmtime(&ct);
tm.tm_mon += 1;
tm.tm_year -= 100;
date = ((int)tm.tm_mday * 10000) + ((int)tm.tm_mon * 100) + tm.tm_year;
struct tm tm;
char buf[32];
- tm = *gmtime(&wpt->creation_time);
+ const time_t tt = wpt->creation_time;
+ tm = *gmtime(&tt);
+
tm.tm_year += 1900;
tm.tm_mon += 1;
GMSD_SETSTR(country, str);
GMSD_SETSTR(cc, gt_get_icao_cc(str, wpt->shortname));
break;
- case 16:
- parse_date_and_time(str, &wpt->creation_time);
+ case 16: {
+ time_t ct;
+ parse_date_and_time(str, &ct);
+ wpt->creation_time = ct;
+ }
break;
case 17:
wpt->url = DUPSTR(str);
parse_coordinates(str, datum_index, grid_index,
&wpt->latitude, &wpt->longitude, MYNAME);
break;
- case 2:
- parse_date_and_time(str, &wpt->creation_time);
+ case 2: {
+ time_t ct;
+ parse_date_and_time(str, &ct);
+ wpt->creation_time = ct;
+ }
break;
case 3:
if (parse_distance(str, &x, 1, MYNAME)) {
{
struct tm* tm;
- if (NULL == (tm = gmtime(&wpt->creation_time))) {
+ const time_t tt = wpt->creation_time;
+ tm = gmtime(&tt);
+
+ if (NULL == tm) {
fatal(MYNAME ": bad track timestamp\n");
}
struct tm tm;
if (wpt->creation_time > 0) {
- tm = *gmtime(&wpt->creation_time);
+ const time_t tt = wpt->creation_time;
+ tm = *gmtime(&tt);
+
tm.tm_year += 1900;
tm.tm_mon += 1;
snprintf(sdate, sizeof(sdate), "%02d%02d%02d", tm.tm_mday, tm.tm_mon, tm.tm_year % 100);
ilon = waypointp->longitude;
tm = NULL;
if (waypointp->creation_time) {
- tm = gmtime(&waypointp->creation_time);
+ const time_t ct = waypointp->creation_time;
+ tm = gmtime(&ct);
if (tm) {
hms = tm->tm_hour * 10000 + tm->tm_min * 100 +
tm->tm_sec;
}
if (wpt->creation_time) {
- tm = *gmtime(&wpt->creation_time);
+ const time_t tt = wpt->creation_time;
+ tm = *gmtime(&tt);
le_write16(&buff[TR7_S_YEAR], tm.tm_year + 1900);
buff[TR7_S_MONTH] = tm.tm_mon + 1;
if (wpt->creation_time != 0) {
tmp = str_pool_get(20);
- tm = *gmtime(&wpt->creation_time);
+ const time_t tt = wpt->creation_time;
+ tm = *gmtime(&tt);
strftime(tmp, 20, datefmt, &tm);
buff = ppdb_strcat(buff, tmp, NULL, &len);
}
lon = degrees2ddmm(wpt->longitude);
lat = degrees2ddmm(wpt->latitude);
- tm = gmtime(&wpt->creation_time);
+ const time_t ct = wpt->creation_time;
+ tm = gmtime(&ct);
strftime(tbuf, sizeof(tbuf), "%d-%b-%y %H:%M:%S", tm); /* currently ...%T does nothing under Windows */
for (tp = tbuf; *tp; tp++) {
if (global_opts.objective == trkdata) {
struct tm tm;
- tm = *gmtime(&wpt->creation_time);
+ const time_t tt = wpt->creation_time;
+ tm = *gmtime(&tt);
strftime(buf + 2, sizeof(buf) - 2, "%d%m%y %H%M%S ", &tm);
} else {
char *name;
return;
}
- tm = *gmtime(&wpt->creation_time);
+ const time_t tt = wpt->creation_time;
+ tm = *gmtime(&tt);
tm.tm_year += 1900;
tm.tm_mon++;